package com.skzh.equipment.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.skzh.common.annotation.Excel;
import com.skzh.common.core.domain.BaseEntity;

/**
 * 无人机信息对象 drone_info
 *
 * @author skzh
 * @date 2025-03-26
 */
@Data
public class Drone extends BaseEntity {

    private static final long serialVersionUID=1L;

    /** 无人机唯一ID */
    private Long id;

    /** 无人机名称 */
    @Excel(name = "名称" )
    private String droneName;

    /** 品牌 */
    @Excel(name = "品牌" )
    private String brand;

    /** 产品系列 */
    @Excel(name = "产品系列" )
    private String series;

    /** 产品型号 */
    @Excel(name = "产品型号" )
    private String model;

    /** 内部型号 */
    @Excel(name = "内部型号" )
    private String internalModel;

    /** 设备编号 */
    @Excel(name = "设备编号" )
    private String deviceCode;

    /** 飞控序列号 */
    @Excel(name = "飞控序列号" )
    private String flightControllerSn;

    /** 动力方式（字典） */
    @Excel(name = "动力方式" , readConverterExp = "字=典" )
    private String powerType;

    /** 轴距（单位：毫米） */
    @Excel(name = "轴距" , readConverterExp = "单=位：毫米" )
    private Long wheelbase;

    /** 无人机类型（字典） */
    @Excel(name = "无人机类型" , readConverterExp = "字=典" )
    private String droneType;

    /** 最大飞行时间（分钟） */
    @Excel(name = "最大飞行时间" , readConverterExp = "分=钟" )
    private String maxFlightTime;

    /** 防护等级（如IP54） */
    @Excel(name = "防护等级" , readConverterExp = "如=IP54" )
    private String protectionRating;

    /** 关联相机型号 */
    @Excel(name = "关联相机型号" )
    private String linkedCamera;

    /** 最大水平飞行速度（米/秒） */
    @Excel(name = "最大水平飞行速度" , readConverterExp = "米=/秒" )
    private Long maxHorizontalSpeed;

    /** 最大上升速度（米/秒） */
    @Excel(name = "最大上升速度" , readConverterExp = "米=/秒" )
    private Long maxAscentSpeed;

    /** 最大下降速度（米/秒） */
    @Excel(name = "最大下降速度" , readConverterExp = "米=/秒" )
    private Long maxDescentSpeed;

    /** 最大可承受风速（米/秒） */
    @Excel(name = "最大可承受风速" , readConverterExp = "米=/秒" )
    private Long maxWindResistance;

    /** 最大载重（克） */
    @Excel(name = "最大载重" , readConverterExp = "克=" )
    private Long maxPayload;

    /** 最小起飞重量（克） */
    @Excel(name = "最小起飞重量" , readConverterExp = "克=" )
    private Long minTakeoffWeight;

    /** 旋翼数量（如4、6、8） */
    @Excel(name = "旋翼数量" , readConverterExp = "如=4、6、8" )
    private String rotorCount;

    /** 产品序列号 */
    @Excel(name = "产品序列号" )
    private String productSn;

    /** 所属组织ID（关联组织表） */
    @Excel(name = "所属组织ID" , readConverterExp = "关=联组织表" )
    private String orgId;

    /** 固件版本 */
    @Excel(name = "固件版本" )
    private String firmwareVersion;

    /** 民航登记号 */
    @Excel(name = "民航登记号" )
    private String aviationRegistration;

    /** 最后在线时间 */
    @JsonFormat(pattern = "yyyy-MM-dd" )
    @Excel(name = "最后在线时间" , width = 30, dateFormat = "yyyy-MM-dd" )
    private Date lastOnlineTime;

    /** 状态 */
    @Excel(name = "状态" )
    private String status;

    /** 绑定状态（0-未绑定，1-已绑定） */
    @Excel(name = "绑定状态" , readConverterExp = "0=-未绑定，1-已绑定" )
    private String bindStatus;

    /** 绑定的机场ID */
    @Excel(name = "绑定的机场ID" )
    private Long boundAirportId;

    /** 图片 */
    @Excel(name = "图片" )
    private String imageUrl;

    /** 删除标记（0-未删除，1-已删除） */
    @Excel(name = "删除标记" , readConverterExp = "0=-未删除，1-已删除" )
    private String isDelete;


}
